package be.lioche.soupe;


import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.block.Sign;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.block.SignChangeEvent;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;

public class Signs implements Listener{

	public Main plugin;
	public Signs(Main main) {
		this.plugin = main;
	}


	@SuppressWarnings("deprecation")
	@EventHandler
	public void detectSign(PlayerInteractEvent e){
		Player p = e.getPlayer();
		Block b = e.getClickedBlock();

		Inventory inv = Bukkit.createInventory(null, 27, "[§4Refill§r] Soupes");

		ItemStack soupe = new ItemStack(Material.MUSHROOM_SOUP);

		for(int i = 0; i < 27; i++){
			inv.setItem(i, soupe);
		}

		if(e.getAction() == Action.RIGHT_CLICK_BLOCK)
		{
			if(b.getType() == Material.WALL_SIGN || b.getType() == Material.SIGN_POST || b.getType() == Material.SIGN || b.getType().getId() == 78)
			{
				Sign s = (Sign) b.getState();
				if(s.getLine(0).contains("Kits") || s.getLine(0).contains("kits"))
				{

					if(s.getLine(1).contains("Flash")){
						if(plugin.getConfig().getBoolean(p.getName()+".Kits.flash.buy") == false){
							if(plugin.getConfig().getInt(p.getName()+".Coins") >= 300){

								plugin.getConfig().set(p.getName()+".Coins", Integer.valueOf(plugin.getConfig().getInt(p.getName()+".Coins")-500));

								p.sendMessage(Main.name + "Vous avez acheté le kit Flash ! (§c-300 coins§f)");
								p.sendMessage("- Coins restants: §c" + plugin.getConfig().getInt(p.getName()+".Coins"));
								plugin.getConfig().set(p.getName()+".havekit", "flash");
								plugin.getConfig().set(p.getName()+".Kits.flash.lvl", Integer.valueOf(1));
								plugin.getConfig().set(p.getName()+".Kits.flash.buy", Boolean.valueOf(true));
								plugin.getConfig().set(p.getName()+".Kits.flash.load", Boolean.valueOf(true));
								plugin.saveConfig();

							}
							else{
								p.sendMessage(Main.name + "Vous n'avez pas assez de coins ! [§c"+plugin.getConfig().getInt(p.getName()+".Coins")+"§f]");
							}

						} // Si kit déjà acheté:

						else{
							if(plugin.getConfig().getString(p.getName()+".havekit") == "flash"){
								p.sendMessage(Main.name + "Le kit flash est déjà sélectionné !");
							}else{
								p.sendMessage(Main.name + "Kit flash sélectionné ! ");
								plugin.getConfig().set(p.getName()+".havekit", "flash");
								plugin.saveConfig();

							}
						}
					}else if(s.getLine(1).contains("Freezer")){
						if(plugin.getConfig().getBoolean(p.getName()+".Kits.freezer.buy") == false){
							if(plugin.getConfig().getInt(p.getName()+".Coins") >= 500){

								plugin.getConfig().set(p.getName()+".Coins", Integer.valueOf(plugin.getConfig().getInt(p.getName()+".Coins")-500));

								p.sendMessage(Main.name + "Vous avez acheté le kit Freezer ! (§c-500 coins§f)");
								p.sendMessage("- Coins restants: §c" + plugin.getConfig().getInt(p.getName()+".Coins"));
								plugin.getConfig().set(p.getName()+".havekit", "freezer");
								plugin.getConfig().set(p.getName()+".Kits.freezer.lvl", Integer.valueOf(1));
								plugin.getConfig().set(p.getName()+".Kits.freezer.buy", Boolean.valueOf(true));
								plugin.getConfig().set(p.getName()+".Kits.freezer.load", Boolean.valueOf(true));
								plugin.saveConfig();
							}
							else{
								p.sendMessage(Main.name + "Vous n'avez pas assez de coins ! [§c"+plugin.getConfig().getInt(p.getName()+".Coins")+"§f]");
							}

						}else{
							if(plugin.getConfig().getString(p.getName()+".havekit") == "freezer"){
								p.sendMessage(Main.name + "Le kit freezer est déjà sélectionné !");
							}else{
								p.sendMessage(Main.name + "Kit freezer sélectionné ! ");
								plugin.getConfig().set(p.getName()+".havekit", "freezer");
								plugin.saveConfig();

							}
						}
					}else if(s.getLine(1).contains("Terroriste")){
						if(plugin.getConfig().getBoolean(p.getName()+".Kits.terroriste.buy") == false){
							if(plugin.getConfig().getInt(p.getName()+".Coins") >= 800){

								plugin.getConfig().set(p.getName()+".Coins", Integer.valueOf(plugin.getConfig().getInt(p.getName()+".Coins")-800));

								p.sendMessage(Main.name + "Vous avez acheté le kit terroriste ! (§c-800 coins§f)");
								p.sendMessage("- Coins restants: §c" + plugin.getConfig().getInt(p.getName()+".Coins"));
								plugin.getConfig().set(p.getName()+".havekit", "terroriste");
								plugin.getConfig().set(p.getName()+".Kits.terroriste.lvl", Integer.valueOf(1));
								plugin.getConfig().set(p.getName()+".Kits.terroriste.buy", Boolean.valueOf(true));
								plugin.getConfig().set(p.getName()+".Kits.terroriste.load", Boolean.valueOf(true));
								plugin.saveConfig();
							}
							else{
								p.sendMessage(Main.name + "Vous n'avez pas assez de coins ! [§c"+plugin.getConfig().getInt(p.getName()+".Coins")+"§f]");
							}

						}else{
							if(plugin.getConfig().getString(p.getName()+".havekit") == "terroriste"){
								p.sendMessage(Main.name + "Le kit terroriste est déjà sélectionné !");
							}else{
								p.sendMessage(Main.name + "Kit terroriste sélectionné ! ");
								plugin.getConfig().set(p.getName()+".havekit", "terroriste");
								plugin.saveConfig();

							}
						}
					}else if(s.getLine(1).contains("Défaut")){
						if(plugin.getConfig().getString(p.getName()+".havekit") == "defaut"){
							p.sendMessage(Main.name + "Le kit par défaut est déjà sélectionné !");
						}else{
							p.sendMessage(Main.name + "Kit par défaut sélectionné ! ");
							plugin.getConfig().set(p.getName()+".havekit", "defaut");
							plugin.saveConfig();

						}
					}

				}else if(s.getLine(0).contains("Refill") || s.getLine(0).contains("refill")){
					p.openInventory(inv);			
				}else if(s.getLine(0).contains("Repair") || s.getLine(0).contains("repair") || s.getLine(1).equalsIgnoreCase("Stuff")){
					if(plugin.getConfig().getInt(p.getName()+".Coins") >= 25){
						plugin.getConfig().set(p.getName()+".Coins", Integer.valueOf(plugin.getConfig().getInt(p.getName()+".Coins")-25));
						plugin.repairAll(p);
						p.sendMessage(Main.name+"Stuff réparé ! (§c-25 coins§f)");
						plugin.saveConfig();
					}else{
						p.sendMessage(Main.name+"Vous n'avez pas assez de coins !");
					}
				}
			}
		}
	}


	@EventHandler
	public void changeColor(SignChangeEvent e){
		if(e.getLine(0).equalsIgnoreCase("[kits]")){
			e.setLine(0, "§f[§cKits§f]");
			e.setLine(1, "§r"+e.getLine(1));
			e.setLine(2, "");
			if(e.getLine(3).equalsIgnoreCase("gratuit")){
				e.setLine(3, "§cPrix: §rGratuit");
			}else{
				e.setLine(3, "§cPrix: §r"+ e.getLine(3) + " coins");
			}
		}else if(e.getLine(0).equalsIgnoreCase("[refill]")){
			e.setLine(0, "§f[§cRefill§f]");
			e.setLine(1, "§rSoupes");
			e.setLine(2, "");
			e.setLine(3, "§cPrix: §r"+ e.getLine(3));
		}else if(e.getLine(0).equalsIgnoreCase("[repair]")){
			e.setLine(0, "§f[§cRepair§f]");
			e.setLine(1, "§rStuff");
			e.setLine(2, "");
			e.setLine(3, "§cPrix: §r25 coins");
		}
	}

}
